package com.dao;

import com.beans.Concurents;
import com.utils.HibernateUtils;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

public class ConcurentsDao {

    public ConcurentsDao() {
    }
    //Cette méthode sera utiliser pour ajouter Concurents dans un appel d'offre donné

    public void addConcurents(Concurents concurents) {

        Session session = HibernateUtils.currentSession();

        Transaction tx = session.beginTransaction();

        session.save(concurents);
        tx.commit();

        HibernateUtils.closeSession();
    }

    //Cette méthode va nous permettre d'éffectuer des mis à jour au niveau des Concurents dans un Appel d'offre donné
    public void updateConcurents(Concurents concurents) {

        Session session = HibernateUtils.currentSession();

        Transaction tx = session.beginTransaction();

        session.save(concurents);
        tx.commit();

        HibernateUtils.closeSession();
    }

    //Cette méthode nous permet de lister les Concurents dans un Appel d'offre donné
    public List<Concurents> selectAllConcurents() {
        Concurents concurents = new Concurents();
        Session session = HibernateUtils.currentSession();
        Query query = session.createQuery("from Concurents");
        List<Concurents> list = query.list();
        for (int i = 0; i < list.size(); i++) {
            concurents = list.get(i);
        }
        return list;
    }

    //Cette méthode permet de Trouver un Concurent en fonction de son nom dans un Appel d'offre donné
    public Concurents findConcurents(String concurentNom) {

        Session session = HibernateUtils.currentSession();

        Query query = session.createQuery("from Concurents where concNom='" + concurentNom + "'");
        List<Concurents> listConcurents = query.list();
        return listConcurents.get(0);

    }

    //Cette méthode permet de suprimer un Concurent 
    public void deleteConcurents(Concurents concurents) {

        Session session = HibernateUtils.currentSession();

        Transaction tx = session.beginTransaction();

        session.delete(concurents);

        tx.commit();
        HibernateUtils.closeSession();

    }
}
